home *** CD-ROM | disk | FTP | other *** search
/ MacHack 1996 / MacHack 1996.toast / Hacks / Hacks '96 / Audio dcmds / Audio CD dcmds.sit / Audio CD dcmds.π / play dcmd / cd.c < prev    next >
MacBinary  |  1995-07-03  |  10.1 KB  |  [TEXT/MPS ]

open in: MacOS 8.1     |     Win98     |     DOS

browse contents    |     view JSON data     |     view as text


This file was processed as: MacBinary (archive/macBinary).

ConfidenceProgramDetectionMatch TypeSupport
66% dexvert Compact Compressed (Unix) (archive/compact) ext Supported
10% dexvert MacBinary (archive/macBinary) fallback Supported
10% dexvert Jesper Olsen Module (music/jesperOlsen) magic Supported
1% dexvert Text File (text/txt) fallback Supported
100% file TTComp archive data, binary, 1K dictionary default (weak)
99% file MacBinary II, Sun Jul 2 22:33:28 1995, modified Sun Jul 2 22:33:28 1995, creator 'MPS ', type ASCII, 9481 bytes "cd.c" , at 0x2589 546 bytes resource default (weak)
98% file data default
49% TrID Macintosh plain text (MacBinary) default
33% TrID TTComp archive compressed (bin-1K) default (weak)
16% TrID MacBinary 2 default (weak)
0% TrID Sybase iAnywhere database files default (weak)
100% siegfried fmt/1762 MacBinary (II) default
100% lsar MacBinary default


id metadata
keyvalue
macFileType[TEXT]
macFileCreator[MPS ]



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 04 63 64 2e 63 00 00 | 00 00 00 00 00 00 00 00 |..cd.c..|........|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 4d 50 53 | 20 00 00 00 00 00 00 00 |.TEXTMPS| .......|
|00000050| 00 00 00 00 00 25 09 00 | 00 02 22 ac 1d 07 78 ac |.....%..|.."...x.|
|00000060| 1d 07 78 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |..x.....|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 9b 81 00 00 |........|........|
|00000080| 2f 2f 20 69 6d 57 61 72 | 65 0d 2f 2f 20 57 65 64 |// imWar|e.// Wed|
|00000090| 6e 65 73 64 61 79 2c 20 | 46 65 62 72 75 61 72 79 |nesday, |February|
|000000a0| 20 31 34 2c 20 31 39 39 | 30 0d 2f 2f 20 4a 61 6d | 14, 199|0.// Jam|
|000000b0| 65 73 20 42 65 6e 69 6e | 67 68 61 75 73 0d 0d 2f |es Benin|ghaus../|
|000000c0| 2f 23 69 6e 63 6c 75 64 | 65 09 3c 54 6f 6f 6c 55 |/#includ|e.<ToolU|
|000000d0| 74 69 6c 73 2e 68 3e 0d | 23 69 6e 63 6c 75 64 65 |tils.h>.|#include|
|000000e0| 09 3c 4d 65 6d 6f 72 79 | 2e 68 3e 0d 23 69 6e 63 |.<Memory|.h>.#inc|
|000000f0| 6c 75 64 65 09 3c 45 72 | 72 6f 72 73 2e 68 3e 0d |lude.<Er|rors.h>.|
|00000100| 23 69 6e 63 6c 75 64 65 | 09 22 63 64 2e 68 22 0d |#include|."cd.h".|
|00000110| 23 69 6e 63 6c 75 64 65 | 20 22 74 6f 6f 6c 75 74 |#include| "toolut|
|00000120| 69 6c 73 2e 68 22 0d 70 | 61 73 63 61 6c 09 42 79 |ils.h".p|ascal.By|
|00000130| 74 65 20 44 65 63 69 6d | 61 6c 32 42 43 44 28 42 |te Decim|al2BCD(B|
|00000140| 79 74 65 20 6e 29 20 7b | 0d 09 72 65 74 75 72 6e |yte n) {|..return|
|00000150| 20 28 28 6e 20 2f 20 31 | 30 29 20 3c 3c 20 34 29 | ((n / 1|0) << 4)|
|00000160| 20 2b 20 28 6e 20 25 20 | 31 30 29 3b 20 0d 7d 0d | + (n % |10); .}.|
|00000170| 0d 70 61 73 63 61 6c 09 | 42 79 74 65 20 42 43 44 |.pascal.|Byte BCD|
|00000180| 32 44 65 63 69 6d 61 6c | 28 42 79 74 65 20 6e 29 |2Decimal|(Byte n)|
|00000190| 20 7b 0d 09 72 65 74 75 | 72 6e 20 28 28 6e 20 3e | {..retu|rn ((n >|
|000001a0| 3e 20 34 29 20 2a 20 31 | 30 29 20 2b 20 28 6e 20 |> 4) * 1|0) + (n |
|000001b0| 26 20 30 78 30 66 29 3b | 0d 7d 0d 0d 70 61 73 63 |& 0x0f);|.}..pasc|
|000001c0| 61 6c 09 4f 53 45 72 72 | 20 4f 70 65 6e 43 44 28 |al.OSErr| OpenCD(|
|000001d0| 42 79 74 65 20 43 44 44 | 72 69 76 65 2c 20 73 68 |Byte CDD|rive, sh|
|000001e0| 6f 72 74 20 2a 69 6f 52 | 65 66 4e 75 6d 29 20 7b |ort *ioR|efNum) {|
|000001f0| 0d 0d 09 61 75 74 6f 09 | 4f 53 45 72 72 09 09 09 |...auto.|OSErr...|
|00000200| 6f 73 45 72 72 3b 0d 09 | 61 75 74 6f 09 73 68 6f |osErr;..|auto.sho|
|00000210| 72 74 09 09 09 69 6f 52 | 65 66 4e 75 6d 54 65 6d |rt...ioR|efNumTem|
|00000220| 70 2c 0d 09 09 09 09 09 | 09 09 43 44 44 72 69 76 |p,......|..CDDriv|
|00000230| 65 43 6f 75 6e 74 2c 0d | 09 09 09 09 09 09 09 53 |eCount,.|.......S|
|00000240| 43 53 49 49 44 3b 0d 09 | 73 74 61 74 69 63 09 57 |CSIID;..|static.W|
|00000250| 68 6f 49 73 54 68 65 72 | 65 52 65 63 09 2a 70 62 |hoIsTher|eRec.*pb|
|00000260| 3b 0d 0d 09 70 62 20 3d | 20 28 57 68 6f 49 73 54 |;...pb =| (WhoIsT|
|00000270| 68 65 72 65 52 65 63 20 | 2a 29 20 4e 65 77 50 74 |hereRec |*) NewPt|
|00000280| 72 43 6c 65 61 72 28 73 | 69 7a 65 6f 66 20 28 2a |rClear(s|izeof (*|
|00000290| 70 62 29 29 3b 0d 09 6f | 73 45 72 72 20 3d 20 4d |pb));..o|sErr = M|
|000002a0| 65 6d 45 72 72 6f 72 28 | 29 3b 0d 09 69 66 20 28 |emError(|);..if (|
|000002b0| 30 20 21 3d 20 70 62 20 | 26 26 20 6e 6f 45 72 72 |0 != pb |&& noErr|
|000002c0| 20 3d 3d 20 6f 73 45 72 | 72 29 20 7b 0d 09 09 6f | == osEr|r) {...o|
|000002d0| 73 45 72 72 20 3d 20 4f | 70 65 6e 44 72 69 76 65 |sErr = O|penDrive|
|000002e0| 72 28 22 5c 70 2e 41 70 | 70 6c 65 43 44 22 2c 20 |r("\p.Ap|pleCD", |
|000002f0| 26 69 6f 52 65 66 4e 75 | 6d 54 65 6d 70 29 3b 0d |&ioRefNu|mTemp);.|
|00000300| 09 09 69 66 20 28 6e 6f | 45 72 72 20 3d 3d 20 6f |..if (no|Err == o|
|00000310| 73 45 72 72 29 20 7b 0d | 09 09 09 28 2a 70 62 29 |sErr) {.|...(*pb)|
|00000320| 2e 69 6f 52 65 66 4e 75 | 6d 09 09 3d 20 69 6f 52 |.ioRefNu|m..= ioR|
|00000330| 65 66 4e 75 6d 54 65 6d | 70 3b 0d 09 09 09 28 2a |efNumTem|p;....(*|
|00000340| 70 62 29 2e 63 73 43 6f | 64 65 09 09 3d 20 63 73 |pb).csCo|de..= cs|
|00000350| 57 68 6f 49 73 54 68 65 | 72 65 3b 0d 09 09 09 6f |WhoIsThe|re;....o|
|00000360| 73 45 72 72 20 3d 20 50 | 42 53 74 61 74 75 73 28 |sErr = P|BStatus(|
|00000370| 28 50 61 72 6d 42 6c 6b | 50 74 72 29 70 62 2c 20 |(ParmBlk|Ptr)pb, |
|00000380| 66 61 6c 73 65 29 3b 0d | 09 09 09 69 66 20 28 6e |false);.|...if (n|
|00000390| 6f 45 72 72 20 3d 3d 20 | 6f 73 45 72 72 29 20 7b |oErr == |osErr) {|
|000003a0| 0d 09 09 09 09 43 44 44 | 72 69 76 65 43 6f 75 6e |.....CDD|riveCoun|
|000003b0| 74 20 3d 20 30 3b 0d 09 | 09 09 09 66 6f 72 20 28 |t = 0;..|...for (|
|000003c0| 53 43 53 49 49 44 20 3d | 20 30 3b 20 53 43 53 49 |SCSIID =| 0; SCSI|
|000003d0| 49 44 20 3c 20 37 3b 20 | 2b 2b 53 43 53 49 49 44 |ID < 7; |++SCSIID|
|000003e0| 29 20 7b 0d 09 09 09 09 | 09 69 66 20 28 42 69 74 |) {.....|.if (Bit|
|000003f0| 54 73 74 28 26 28 2a 70 | 62 29 2e 63 73 50 61 72 |Tst(&(*p|b).csPar|
|00000400| 61 6d 2e 53 43 53 49 4d | 61 73 6b 2c 20 37 20 2d |am.SCSIM|ask, 7 -|
|00000410| 20 53 43 53 49 49 44 29 | 29 20 7b 0d 09 09 09 09 | SCSIID)|) {.....|
|00000420| 09 09 2b 2b 43 44 44 72 | 69 76 65 43 6f 75 6e 74 |..++CDDr|iveCount|
|00000430| 3b 0d 09 09 09 09 09 09 | 69 66 20 28 43 44 44 72 |;.......|if (CDDr|
|00000440| 69 76 65 20 3d 3d 20 43 | 44 44 72 69 76 65 43 6f |ive == C|DDriveCo|
|00000450| 75 6e 74 29 20 7b 0d 09 | 09 09 09 09 09 09 2a 69 |unt) {..|......*i|
|00000460| 6f 52 65 66 4e 75 6d 20 | 3d 20 2d 28 33 32 20 2b |oRefNum |= -(32 +|
|00000470| 20 53 43 53 49 49 44 29 | 20 2d 20 31 3b 0d 09 09 | SCSIID)| - 1;...|
|00000480| 09 09 09 09 09 44 69 73 | 70 6f 73 50 74 72 28 28 |.....Dis|posPtr((|
|00000490| 50 74 72 29 20 70 62 29 | 3b 0d 09 09 09 09 09 09 |Ptr) pb)|;.......|
|000004a0| 09 72 65 74 75 72 6e 20 | 6e 6f 45 72 72 3b 0d 09 |.return |noErr;..|
|000004b0| 09 09 09 09 09 7d 0d 09 | 09 09 09 09 7d 0d 09 09 |.....}..|....}...|
|000004c0| 09 09 7d 0d 09 09 09 09 | 6f 73 45 72 72 20 3d 20 |..}.....|osErr = |
|000004d0| 70 61 72 61 6d 45 72 72 | 3b 0d 09 09 09 7d 0d 09 |paramErr|;....}..|
|000004e0| 09 7d 0d 09 09 44 69 73 | 70 6f 73 50 74 72 28 28 |.}...Dis|posPtr((|
|000004f0| 50 74 72 29 20 70 62 29 | 3b 0d 09 7d 0d 09 72 65 |Ptr) pb)|;..}..re|
|00000500| 74 75 72 6e 20 6f 73 45 | 72 72 3b 0d 7d 0d 0d 70 |turn osE|rr;.}..p|
|00000510| 61 73 63 61 6c 09 4f 53 | 45 72 72 20 45 6a 65 63 |ascal.OS|Err Ejec|
|00000520| 74 43 44 28 73 68 6f 72 | 74 20 69 6f 52 65 66 4e |tCD(shor|t ioRefN|
|00000530| 75 6d 29 20 7b 0d 0d 09 | 61 75 74 6f 09 4f 53 45 |um) {...|auto.OSE|
|00000540| 72 72 09 09 09 6f 73 45 | 72 72 3b 0d 09 61 75 74 |rr...osE|rr;..aut|
|00000550| 6f 09 53 74 72 32 35 35 | 09 09 09 69 6f 4e 61 6d |o.Str255|...ioNam|
|00000560| 65 3b 0d 09 73 74 61 74 | 69 63 09 48 56 6f 6c 75 |e;..stat|ic.HVolu|
|00000570| 6d 65 50 61 72 61 6d 09 | 2a 70 62 3b 0d 09 0d 09 |meParam.|*pb;....|
|00000580| 70 62 20 3d 20 28 48 56 | 6f 6c 75 6d 65 50 61 72 |pb = (HV|olumePar|
|00000590| 61 6d 20 2a 29 20 4e 65 | 77 50 74 72 43 6c 65 61 |am *) Ne|wPtrClea|
|000005a0| 72 28 73 69 7a 65 6f 66 | 20 28 2a 70 62 29 29 3b |r(sizeof| (*pb));|
|000005b0| 0d 09 6f 73 45 72 72 20 | 3d 20 4d 65 6d 45 72 72 |..osErr |= MemErr|
|000005c0| 6f 72 28 29 3b 0d 09 69 | 66 20 28 30 20 21 3d 20 |or();..i|f (0 != |
|000005d0| 70 62 20 26 26 20 6e 6f | 45 72 72 20 3d 3d 20 6f |pb && no|Err == o|
|000005e0| 73 45 72 72 29 20 7b 0d | 09 09 28 2a 70 62 29 2e |sErr) {.|..(*pb).|
|000005f0| 69 6f 4e 61 6d 65 50 74 | 72 09 3d 20 69 6f 4e 61 |ioNamePt|r.= ioNa|
|00000600| 6d 65 3b 0d 09 09 28 2a | 70 62 29 2e 69 6f 56 6f |me;...(*|pb).ioVo|
|00000610| 6c 49 6e 64 65 78 20 3d | 20 30 3b 0d 09 09 64 6f |lIndex =| 0;...do|
|00000620| 20 7b 0d 09 09 09 2b 2b | 28 2a 70 62 29 2e 69 6f | {....++|(*pb).io|
|00000630| 56 6f 6c 49 6e 64 65 78 | 3b 0d 09 09 09 6f 73 45 |VolIndex|;....osE|
|00000640| 72 72 20 3d 20 50 42 48 | 47 65 74 56 49 6e 66 6f |rr = PBH|GetVInfo|
|00000650| 28 28 48 50 61 72 6d 42 | 6c 6b 50 74 72 29 70 62 |((HParmB|lkPtr)pb|
|00000660| 2c 20 66 61 6c 73 65 29 | 3b 0d 09 09 09 69 66 20 |, false)|;....if |
|00000670| 28 6e 6f 45 72 72 20 21 | 3d 20 6f 73 45 72 72 29 |(noErr !|= osErr)|
|00000680| 20 7b 0d 09 09 09 09 44 | 69 73 70 6f 73 50 74 72 | {.....D|isposPtr|
|00000690| 28 28 50 74 72 29 20 70 | 62 29 3b 0d 09 09 09 09 |((Ptr) p|b);.....|
|000006a0| 72 65 74 75 72 6e 20 6f | 73 45 72 72 3b 0d 09 09 |return o|sErr;...|
|000006b0| 09 7d 0d 09 09 7d 20 77 | 68 69 6c 65 20 28 28 2a |.}...} w|hile ((*|
|000006c0| 70 62 29 2e 69 6f 56 44 | 52 65 66 4e 75 6d 20 21 |pb).ioVD|RefNum !|
|000006d0| 3d 20 69 6f 52 65 66 4e | 75 6d 29 3b 0d 09 09 6f |= ioRefN|um);...o|
|000006e0| 73 45 72 72 20 3d 20 50 | 42 45 6a 65 63 74 28 28 |sErr = P|BEject((|
|000006f0| 50 61 72 6d 42 6c 6b 50 | 74 72 29 70 62 29 3b 0d |ParmBlkP|tr)pb);.|
|00000700| 09 09 69 66 20 28 6e 6f | 45 72 72 20 3d 3d 20 6f |..if (no|Err == o|
|00000710| 73 45 72 72 29 0d 09 09 | 09 20 6f 73 45 72 72 20 |sErr)...|. osErr |
|00000720| 3d 20 50 42 55 6e 6d 6f | 75 6e 74 56 6f 6c 28 28 |= PBUnmo|untVol((|
|00000730| 50 61 72 6d 42 6c 6b 50 | 74 72 29 70 62 29 3b 0d |ParmBlkP|tr)pb);.|
|00000740| 09 09 44 69 73 70 6f 73 | 50 74 72 28 28 50 74 72 |..Dispos|Ptr((Ptr|
|00000750| 29 20 70 62 29 3b 0d 09 | 7d 0d 09 72 65 74 75 72 |) pb);..|}..retur|
|00000760| 6e 20 6f 73 45 72 72 3b | 0d 7d 0d 0d 70 61 73 63 |n osErr;|.}..pasc|
|00000770| 61 6c 09 4f 53 45 72 72 | 20 41 43 75 72 72 49 6e |al.OSErr| ACurrIn|
|00000780| 66 6f 28 73 68 6f 72 74 | 20 69 6f 52 65 66 4e 75 |fo(short| ioRefNu|
|00000790| 6d 2c 20 42 79 74 65 20 | 2a 63 75 72 72 65 6e 74 |m, Byte |*current|
|000007a0| 54 72 61 63 6b 2c 20 42 | 79 74 65 20 2a 64 69 73 |Track, B|yte *dis|
|000007b0| 63 4d 69 6e 75 74 65 73 | 2c 20 42 79 74 65 20 2a |cMinutes|, Byte *|
|000007c0| 64 69 73 63 53 65 63 6f | 6e 64 73 2c 20 42 79 74 |discSeco|nds, Byt|
|000007d0| 65 20 2a 64 69 73 63 46 | 72 61 6d 65 73 29 0d 7b |e *discF|rames).{|
|000007e0| 0d 09 61 75 74 6f 09 4f | 53 45 72 72 09 09 09 6f |..auto.O|SErr...o|
|000007f0| 73 45 72 72 3b 0d 09 73 | 74 61 74 69 63 09 52 65 |sErr;..s|tatic.Re|
|00000800| 61 64 51 52 65 63 09 09 | 2a 70 62 3b 0d 09 42 79 |adQRec..|*pb;..By|
|00000810| 74 65 09 6d 69 6e 73 3b | 09 0d 0d 09 70 62 20 3d |te.mins;|....pb =|
|00000820| 20 28 52 65 61 64 51 52 | 65 63 20 2a 29 20 4e 65 | (ReadQR|ec *) Ne|
|00000830| 77 50 74 72 43 6c 65 61 | 72 28 73 69 7a 65 6f 66 |wPtrClea|r(sizeof|
|00000840| 20 28 2a 70 62 29 29 3b | 0d 09 6f 73 45 72 72 20 | (*pb));|..osErr |
|00000850| 3d 20 4d 65 6d 45 72 72 | 6f 72 28 29 3b 0d 09 69 |= MemErr|or();..i|
|00000860| 66 20 28 30 20 21 3d 20 | 70 62 20 26 26 20 6e 6f |f (0 != |pb && no|
|00000870| 45 72 72 20 3d 3d 20 6f | 73 45 72 72 29 20 7b 0d |Err == o|sErr) {.|
|00000880| 09 09 28 2a 70 62 29 2e | 69 6f 52 65 66 4e 75 6d |..(*pb).|ioRefNum|
|00000890| 20 09 09 09 3d 20 69 6f | 52 65 66 4e 75 6d 3b 0d | ...= io|RefNum;.|
|000008a0| 09 09 28 2a 70 62 29 2e | 63 73 43 6f 64 65 09 09 |..(*pb).|csCode..|
|000008b0| 09 3d 20 63 73 52 65 61 | 64 51 3b 0d 09 09 6f 73 |.= csRea|dQ;...os|
|000008c0| 45 72 72 20 3d 20 50 42 | 43 6f 6e 74 72 6f 6c 28 |Err = PB|Control(|
|000008d0| 28 50 61 72 6d 42 6c 6b | 50 74 72 29 70 62 2c 20 |(ParmBlk|Ptr)pb, |
|000008e0| 66 61 6c 73 65 29 3b 0d | 09 09 69 66 20 28 6e 6f |false);.|..if (no|
|000008f0| 45 72 72 20 3d 3d 20 6f | 73 45 72 72 29 20 7b 0d |Err == o|sErr) {.|
|00000900| 09 09 09 2a 63 75 72 72 | 65 6e 74 54 72 61 63 6b |...*curr|entTrack|
|00000910| 20 3d 20 42 43 44 32 44 | 65 63 69 6d 61 6c 28 28 | = BCD2D|ecimal((|
|00000920| 2a 70 62 29 2e 63 73 50 | 61 72 61 6d 2e 63 75 72 |*pb).csP|aram.cur|
|00000930| 72 65 6e 74 54 72 61 63 | 6b 29 3b 0d 09 09 09 2a |rentTrac|k);....*|
|00000940| 64 69 73 63 4d 69 6e 75 | 74 65 73 20 3d 20 42 43 |discMinu|tes = BC|
|00000950| 44 32 44 65 63 69 6d 61 | 6c 28 28 2a 70 62 29 2e |D2Decima|l((*pb).|
|00000960| 63 73 50 61 72 61 6d 2e | 61 64 64 72 46 72 6f 6d |csParam.|addrFrom|
|00000970| 44 69 73 63 53 74 61 72 | 74 2e 6d 69 6e 75 74 65 |DiscStar|t.minute|
|00000980| 73 29 3b 0d 09 09 09 2a | 64 69 73 63 53 65 63 6f |s);....*|discSeco|
|00000990| 6e 64 73 20 3d 20 42 43 | 44 32 44 65 63 69 6d 61 |nds = BC|D2Decima|
|000009a0| 6c 28 28 2a 70 62 29 2e | 63 73 50 61 72 61 6d 2e |l((*pb).|csParam.|
|000009b0| 61 64 64 72 46 72 6f 6d | 44 69 73 63 53 74 61 72 |addrFrom|DiscStar|
|000009c0| 74 2e 73 65 63 6f 6e 64 | 73 29 3b 0d 09 09 09 2a |t.second|s);....*|
|000009d0| 64 69 73 63 46 72 61 6d | 65 73 20 3d 20 42 43 44 |discFram|es = BCD|
|000009e0| 32 44 65 63 69 6d 61 6c | 28 28 2a 70 62 29 2e 63 |2Decimal|((*pb).c|
|000009f0| 73 50 61 72 61 6d 2e 61 | 64 64 72 46 72 6f 6d 44 |sParam.a|ddrFromD|
|00000a00| 69 73 63 53 74 61 72 74 | 2e 66 72 61 6d 65 73 29 |iscStart|.frames)|
|00000a10| 3b 0d 09 09 09 6f 73 45 | 72 72 20 3d 20 28 2a 70 |;....osE|rr = (*p|
|00000a20| 62 29 2e 69 6f 52 65 73 | 75 6c 74 3b 0d 09 09 7d |b).ioRes|ult;...}|
|00000a30| 0d 09 09 44 69 73 70 6f | 73 50 74 72 28 28 50 74 |...Dispo|sPtr((Pt|
|00000a40| 72 29 70 62 29 3b 0d 09 | 7d 0d 09 72 65 74 75 72 |r)pb);..|}..retur|
|00000a50| 6e 20 6f 73 45 72 72 3b | 09 0d 7d 0d 0d 70 61 73 |n osErr;|..}..pas|
|00000a60| 63 61 6c 09 4f 53 45 72 | 72 20 41 43 75 72 72 54 |cal.OSEr|r ACurrT|
|00000a70| 72 61 63 6b 49 6e 66 6f | 28 73 68 6f 72 74 20 69 |rackInfo|(short i|
|00000a80| 6f 52 65 66 4e 75 6d 2c | 20 42 79 74 65 20 2a 63 |oRefNum,| Byte *c|
|00000a90| 75 72 72 65 6e 74 54 72 | 61 63 6b 2c 20 42 79 74 |urrentTr|ack, Byt|
|00000aa0| 65 20 2a 64 69 73 63 4d | 69 6e 75 74 65 73 2c 20 |e *discM|inutes, |
|00000ab0| 42 79 74 65 20 2a 64 69 | 73 63 53 65 63 6f 6e 64 |Byte *di|scSecond|
|00000ac0| 73 2c 20 42 79 74 65 20 | 2a 64 69 73 63 46 72 61 |s, Byte |*discFra|
|00000ad0| 6d 65 73 29 0d 7b 0d 09 | 61 75 74 6f 09 4f 53 45 |mes).{..|auto.OSE|
|00000ae0| 72 72 09 09 09 6f 73 45 | 72 72 3b 0d 09 73 74 61 |rr...osE|rr;..sta|
|00000af0| 74 69 63 09 52 65 61 64 | 51 52 65 63 09 09 2a 70 |tic.Read|QRec..*p|
|00000b00| 62 3b 0d 09 42 79 74 65 | 09 6d 69 6e 73 3b 09 0d |b;..Byte|.mins;..|
|00000b10| 0d 09 70 62 20 3d 20 28 | 52 65 61 64 51 52 65 63 |..pb = (|ReadQRec|
|00000b20| 20 2a 29 20 4e 65 77 50 | 74 72 43 6c 65 61 72 28 | *) NewP|trClear(|
|00000b30| 73 69 7a 65 6f 66 20 28 | 2a 70 62 29 29 3b 0d 09 |sizeof (|*pb));..|
|00000b40| 6f 73 45 72 72 20 3d 20 | 4d 65 6d 45 72 72 6f 72 |osErr = |MemError|
|00000b50| 28 29 3b 0d 09 69 66 20 | 28 30 20 21 3d 20 70 62 |();..if |(0 != pb|
|00000b60| 20 26 26 20 6e 6f 45 72 | 72 20 3d 3d 20 6f 73 45 | && noEr|r == osE|
|00000b70| 72 72 29 20 7b 0d 09 09 | 28 2a 70 62 29 2e 69 6f |rr) {...|(*pb).io|
|00000b80| 52 65 66 4e 75 6d 20 09 | 09 09 3d 20 69 6f 52 65 |RefNum .|..= ioRe|
|00000b90| 66 4e 75 6d 3b 0d 09 09 | 28 2a 70 62 29 2e 63 73 |fNum;...|(*pb).cs|
|00000ba0| 43 6f 64 65 09 09 09 3d | 20 63 73 52 65 61 64 51 |Code...=| csReadQ|
|00000bb0| 3b 0d 09 09 6f 73 45 72 | 72 20 3d 20 50 42 43 6f |;...osEr|r = PBCo|
|00000bc0| 6e 74 72 6f 6c 28 28 50 | 61 72 6d 42 6c 6b 50 74 |ntrol((P|armBlkPt|
|00000bd0| 72 29 70 62 2c 20 66 61 | 6c 73 65 29 3b 0d 09 09 |r)pb, fa|lse);...|
|00000be0| 69 66 20 28 6e 6f 45 72 | 72 20 3d 3d 20 6f 73 45 |if (noEr|r == osE|
|00000bf0| 72 72 29 20 7b 0d 09 09 | 09 2a 63 75 72 72 65 6e |rr) {...|.*curren|
|00000c00| 74 54 72 61 63 6b 20 3d | 20 42 43 44 32 44 65 63 |tTrack =| BCD2Dec|
|00000c10| 69 6d 61 6c 28 28 2a 70 | 62 29 2e 63 73 50 61 72 |imal((*p|b).csPar|
|00000c20| 61 6d 2e 63 75 72 72 65 | 6e 74 54 72 61 63 6b 29 |am.curre|ntTrack)|
|00000c30| 3b 0d 09 09 09 2a 64 69 | 73 63 4d 69 6e 75 74 65 |;....*di|scMinute|
|00000c40| 73 20 3d 20 42 43 44 32 | 44 65 63 69 6d 61 6c 28 |s = BCD2|Decimal(|
|00000c50| 28 2a 70 62 29 2e 63 73 | 50 61 72 61 6d 2e 61 64 |(*pb).cs|Param.ad|
|00000c60| 64 72 46 72 6f 6d 54 72 | 61 63 6b 53 74 61 72 74 |drFromTr|ackStart|
|00000c70| 2e 6d 69 6e 75 74 65 73 | 29 3b 0d 09 09 09 2a 64 |.minutes|);....*d|
|00000c80| 69 73 63 53 65 63 6f 6e | 64 73 20 3d 20 42 43 44 |iscSecon|ds = BCD|
|00000c90| 32 44 65 63 69 6d 61 6c | 28 28 2a 70 62 29 2e 63 |2Decimal|((*pb).c|
|00000ca0| 73 50 61 72 61 6d 2e 61 | 64 64 72 46 72 6f 6d 54 |sParam.a|ddrFromT|
|00000cb0| 72 61 63 6b 53 74 61 72 | 74 2e 73 65 63 6f 6e 64 |rackStar|t.second|
|00000cc0| 73 29 3b 0d 09 09 09 2a | 64 69 73 63 46 72 61 6d |s);....*|discFram|
|00000cd0| 65 73 20 3d 20 42 43 44 | 32 44 65 63 69 6d 61 6c |es = BCD|2Decimal|
|00000ce0| 28 28 2a 70 62 29 2e 63 | 73 50 61 72 61 6d 2e 61 |((*pb).c|sParam.a|
|00000cf0| 64 64 72 46 72 6f 6d 54 | 72 61 63 6b 53 74 61 72 |ddrFromT|rackStar|
|00000d00| 74 2e 66 72 61 6d 65 73 | 29 3b 0d 09 09 09 6f 73 |t.frames|);....os|
|00000d10| 45 72 72 20 3d 20 28 2a | 70 62 29 2e 69 6f 52 65 |Err = (*|pb).ioRe|
|00000d20| 73 75 6c 74 3b 0d 09 09 | 7d 0d 09 09 44 69 73 70 |sult;...|}...Disp|
|00000d30| 6f 73 50 74 72 28 28 50 | 74 72 29 70 62 29 3b 0d |osPtr((P|tr)pb);.|
|00000d40| 09 7d 0d 09 72 65 74 75 | 72 6e 20 6f 73 45 72 72 |.}..retu|rn osErr|
|00000d50| 3b 09 0d 7d 0d 0d 0d 70 | 61 73 63 61 6c 09 4f 53 |;..}...p|ascal.OS|
|00000d60| 45 72 72 20 41 50 6c 61 | 79 28 73 68 6f 72 74 20 |Err APla|y(short |
|00000d70| 69 6f 52 65 66 4e 75 6d | 2c 20 42 79 74 65 20 73 |ioRefNum|, Byte s|
|00000d80| 74 61 72 74 54 72 61 63 | 6b 2c 20 42 79 74 65 20 |tartTrac|k, Byte |
|00000d90| 70 6c 61 79 4d 6f 64 65 | 29 20 7b 0d 0d 09 61 75 |playMode|) {...au|
|00000da0| 74 6f 09 4f 53 45 72 72 | 09 09 09 6f 73 45 72 72 |to.OSErr|...osErr|
|00000db0| 3b 0d 09 73 74 61 74 69 | 63 09 41 50 6c 61 79 52 |;..stati|c.APlayR|
|00000dc0| 65 63 09 09 2a 70 62 3b | 09 0d 0d 09 70 62 20 3d |ec..*pb;|....pb =|
|00000dd0| 20 28 41 50 6c 61 79 52 | 65 63 20 2a 29 20 4e 65 | (APlayR|ec *) Ne|
|00000de0| 77 50 74 72 43 6c 65 61 | 72 28 73 69 7a 65 6f 66 |wPtrClea|r(sizeof|
|00000df0| 20 28 2a 70 62 29 29 3b | 0d 09 6f 73 45 72 72 20 | (*pb));|..osErr |
|00000e00| 3d 20 4d 65 6d 45 72 72 | 6f 72 28 29 3b 0d 09 69 |= MemErr|or();..i|
|00000e10| 66 20 28 30 20 21 3d 20 | 70 62 20 26 26 20 6e 6f |f (0 != |pb && no|
|00000e20| 45 72 72 20 3d 3d 20 6f | 73 45 72 72 29 20 7b 0d |Err == o|sErr) {.|
|00000e30| 09 09 28 2a 70 62 29 2e | 69 6f 52 65 66 4e 75 6d |..(*pb).|ioRefNum|
|00000e40| 20 09 09 09 3d 20 69 6f | 52 65 66 4e 75 6d 3b 0d | ...= io|RefNum;.|
|00000e50| 09 09 28 2a 70 62 29 2e | 63 73 43 6f 64 65 09 09 |..(*pb).|csCode..|
|00000e60| 09 3d 20 63 73 41 50 6c | 61 79 3b 0d 09 09 28 2a |.= csAPl|ay;...(*|
|00000e70| 70 62 29 2e 63 73 50 61 | 72 61 6d 2e 74 79 70 65 |pb).csPa|ram.type|
|00000e80| 09 09 3d 20 54 52 41 43 | 4b 41 44 44 52 3b 0d 09 |..= TRAC|KADDR;..|
|00000e90| 09 28 2a 70 62 29 2e 63 | 73 50 61 72 61 6d 2e 61 |.(*pb).c|sParam.a|
|00000ea0| 64 64 72 5b 33 5d 09 3d | 20 44 65 63 69 6d 61 6c |ddr[3].=| Decimal|
|00000eb0| 32 42 43 44 28 73 74 61 | 72 74 54 72 61 63 6b 29 |2BCD(sta|rtTrack)|
|00000ec0| 3b 0d 09 09 28 2a 70 62 | 29 2e 63 73 50 61 72 61 |;...(*pb|).csPara|
|00000ed0| 6d 2e 73 74 61 72 74 53 | 74 6f 70 09 3d 20 53 54 |m.startS|top.= ST|
|00000ee0| 41 52 54 3b 0d 09 09 28 | 2a 70 62 29 2e 63 73 50 |ART;...(|*pb).csP|
|00000ef0| 61 72 61 6d 2e 66 69 6c | 6c 09 09 3d 20 30 3b 0d |aram.fil|l..= 0;.|
|00000f00| 09 09 28 2a 70 62 29 2e | 63 73 50 61 72 61 6d 2e |..(*pb).|csParam.|
|00000f10| 70 6c 61 79 4d 6f 64 65 | 09 3d 20 70 6c 61 79 4d |playMode|.= playM|
|00000f20| 6f 64 65 3b 0d 09 09 6f | 73 45 72 72 20 3d 20 50 |ode;...o|sErr = P|
|00000f30| 42 43 6f 6e 74 72 6f 6c | 28 28 50 61 72 6d 42 6c |BControl|((ParmBl|
|00000f40| 6b 50 74 72 29 70 62 2c | 20 66 61 6c 73 65 29 3b |kPtr)pb,| false);|
|00000f50| 0d 09 09 44 69 73 70 6f | 73 50 74 72 28 28 50 74 |...Dispo|sPtr((Pt|
|00000f60| 72 29 20 70 62 29 3b 0d | 09 7d 0d 09 72 65 74 75 |r) pb);.|.}..retu|
|00000f70| 72 6e 20 6f 73 45 72 72 | 3b 0d 7d 0d 0d 70 61 73 |rn osErr|;.}..pas|
|00000f80| 63 61 6c 09 4f 53 45 72 | 72 20 41 53 74 6f 70 28 |cal.OSEr|r AStop(|
|00000f90| 73 68 6f 72 74 20 69 6f | 52 65 66 4e 75 6d 2c 20 |short io|RefNum, |
|00000fa0| 42 79 74 65 20 73 74 6f | 70 54 72 61 63 6b 29 20 |Byte sto|pTrack) |
|00000fb0| 7b 0d 0d 09 61 75 74 6f | 09 4f 53 45 72 72 09 09 |{...auto|.OSErr..|
|00000fc0| 09 6f 73 45 72 72 3b 0d | 09 73 74 61 74 69 63 09 |.osErr;.|.static.|
|00000fd0| 41 53 74 6f 70 52 65 63 | 09 09 2a 70 62 3b 09 0d |AStopRec|..*pb;..|
|00000fe0| 0d 09 70 62 20 3d 20 28 | 41 53 74 6f 70 52 65 63 |..pb = (|AStopRec|
|00000ff0| 20 2a 29 20 4e 65 77 50 | 74 72 43 6c 65 61 72 28 | *) NewP|trClear(|
|00001000| 73 69 7a 65 6f 66 20 28 | 2a 70 62 29 29 3b 0d 09 |sizeof (|*pb));..|
|00001010| 6f 73 45 72 72 20 3d 20 | 4d 65 6d 45 72 72 6f 72 |osErr = |MemError|
|00001020| 28 29 3b 0d 09 69 66 20 | 28 30 20 21 3d 20 70 62 |();..if |(0 != pb|
|00001030| 20 26 26 20 6e 6f 45 72 | 72 20 3d 3d 20 6f 73 45 | && noEr|r == osE|
|00001040| 72 72 29 20 7b 0d 09 09 | 28 2a 70 62 29 2e 69 6f |rr) {...|(*pb).io|
|00001050| 52 65 66 4e 75 6d 20 09 | 09 09 3d 20 69 6f 52 65 |RefNum .|..= ioRe|
|00001060| 66 4e 75 6d 3b 0d 09 09 | 28 2a 70 62 29 2e 63 73 |fNum;...|(*pb).cs|
|00001070| 43 6f 64 65 09 09 09 3d | 20 63 73 41 53 74 6f 70 |Code...=| csAStop|
|00001080| 3b 0d 09 09 28 2a 70 62 | 29 2e 63 73 50 61 72 61 |;...(*pb|).csPara|
|00001090| 6d 2e 74 79 70 65 09 09 | 3d 20 30 20 3d 3d 20 73 |m.type..|= 0 == s|
|000010a0| 74 6f 70 54 72 61 63 6b | 20 3f 20 42 4c 4f 43 4b |topTrack| ? BLOCK|
|000010b0| 41 44 44 52 20 3a 20 54 | 52 41 43 4b 41 44 44 52 |ADDR : T|RACKADDR|
|000010c0| 3b 20 0d 09 09 28 2a 70 | 62 29 2e 63 73 50 61 72 |; ...(*p|b).csPar|
|000010d0| 61 6d 2e 61 64 64 72 5b | 33 5d 09 3d 20 44 65 63 |am.addr[|3].= Dec|
|000010e0| 69 6d 61 6c 32 42 43 44 | 28 73 74 6f 70 54 72 61 |imal2BCD|(stopTra|
|000010f0| 63 6b 29 3b 0d 09 09 6f | 73 45 72 72 20 3d 20 50 |ck);...o|sErr = P|
|00001100| 42 43 6f 6e 74 72 6f 6c | 28 28 50 61 72 6d 42 6c |BControl|((ParmBl|
|00001110| 6b 50 74 72 29 70 62 2c | 20 66 61 6c 73 65 29 3b |kPtr)pb,| false);|
|00001120| 0d 09 09 44 69 73 70 6f | 73 50 74 72 28 28 50 74 |...Dispo|sPtr((Pt|
|00001130| 72 29 20 70 62 29 3b 0d | 09 7d 0d 09 72 65 74 75 |r) pb);.|.}..retu|
|00001140| 72 6e 20 6f 73 45 72 72 | 3b 0d 7d 0d 0d 70 61 73 |rn osErr|;.}..pas|
|00001150| 63 61 6c 09 4f 53 45 72 | 72 20 41 50 61 75 73 65 |cal.OSEr|r APause|
|00001160| 28 73 68 6f 72 74 20 69 | 6f 52 65 66 4e 75 6d 2c |(short i|oRefNum,|
|00001170| 20 4c 6f 6e 67 20 73 74 | 61 74 65 29 20 7b 20 0d | Long st|ate) { .|
|00001180| 0d 09 61 75 74 6f 09 4f | 53 45 72 72 09 09 09 6f |..auto.O|SErr...o|
|00001190| 73 45 72 72 3b 0d 09 73 | 74 61 74 69 63 09 41 50 |sErr;..s|tatic.AP|
|000011a0| 61 75 73 65 52 65 63 09 | 09 2a 70 62 3b 0d 0d 09 |auseRec.|.*pb;...|
|000011b0| 70 62 20 3d 20 28 41 50 | 61 75 73 65 52 65 63 20 |pb = (AP|auseRec |
|000011c0| 2a 29 20 4e 65 77 50 74 | 72 43 6c 65 61 72 28 73 |*) NewPt|rClear(s|
|000011d0| 69 7a 65 6f 66 20 28 2a | 70 62 29 29 3b 0d 09 6f |izeof (*|pb));..o|
|000011e0| 73 45 72 72 20 3d 20 4d | 65 6d 45 72 72 6f 72 28 |sErr = M|emError(|
|000011f0| 29 3b 0d 09 69 66 20 28 | 30 20 21 3d 20 70 62 20 |);..if (|0 != pb |
|00001200| 26 26 20 6e 6f 45 72 72 | 20 3d 3d 20 6f 73 45 72 |&& noErr| == osEr|
|00001210| 72 29 20 7b 0d 09 09 28 | 2a 70 62 29 2e 69 6f 52 |r) {...(|*pb).ioR|
|00001220| 65 66 4e 75 6d 09 09 09 | 3d 20 69 6f 52 65 66 4e |efNum...|= ioRefN|
|00001230| 75 6d 3b 0d 09 09 28 2a | 70 62 29 2e 63 73 43 6f |um;...(*|pb).csCo|
|00001240| 64 65 09 09 09 3d 20 63 | 73 41 50 61 75 73 65 3b |de...= c|sAPause;|
|00001250| 0d 09 09 28 2a 70 62 29 | 2e 63 73 50 61 72 61 6d |...(*pb)|.csParam|
|00001260| 2e 73 74 61 74 65 09 09 | 3d 20 73 74 61 74 65 3b |.state..|= state;|
|00001270| 0d 09 09 6f 73 45 72 72 | 20 3d 20 50 42 43 6f 6e |...osErr| = PBCon|
|00001280| 74 72 6f 6c 28 28 50 61 | 72 6d 42 6c 6b 50 74 72 |trol((Pa|rmBlkPtr|
|00001290| 29 70 62 2c 20 66 61 6c | 73 65 29 3b 0d 09 09 44 |)pb, fal|se);...D|
|000012a0| 69 73 70 6f 73 50 74 72 | 28 28 50 74 72 29 20 70 |isposPtr|((Ptr) p|
|000012b0| 62 29 3b 0d 09 7d 0d 09 | 72 65 74 75 72 6e 20 6f |b);..}..|return o|
|000012c0| 73 45 72 72 3b 0d 7d 0d | 0d 70 61 73 63 61 6c 09 |sErr;.}.|.pascal.|
|000012d0| 4f 53 45 72 72 20 41 53 | 63 61 6e 28 73 68 6f 72 |OSErr AS|can(shor|
|000012e0| 74 20 69 6f 52 65 66 4e | 75 6d 2c 20 42 79 74 65 |t ioRefN|um, Byte|
|000012f0| 20 73 74 61 72 74 4d 69 | 6e 2c 20 42 79 74 65 20 | startMi|n, Byte |
|00001300| 73 74 61 72 74 53 65 63 | 2c 20 42 79 74 65 20 73 |startSec|, Byte s|
|00001310| 74 61 72 74 46 72 61 6d | 65 2c 20 42 79 74 65 20 |tartFram|e, Byte |
|00001320| 64 69 72 65 63 74 69 6f | 6e 29 0d 7b 0d 09 61 75 |directio|n).{..au|
|00001330| 74 6f 09 4f 53 45 72 72 | 09 09 09 6f 73 45 72 72 |to.OSErr|...osErr|
|00001340| 3b 0d 09 73 74 61 74 69 | 63 09 41 53 63 61 6e 52 |;..stati|c.AScanR|
|00001350| 65 63 09 09 2a 70 62 3b | 09 0d 0d 09 70 62 20 3d |ec..*pb;|....pb =|
|00001360| 20 28 41 53 63 61 6e 52 | 65 63 20 2a 29 20 4e 65 | (AScanR|ec *) Ne|
|00001370| 77 50 74 72 43 6c 65 61 | 72 28 73 69 7a 65 6f 66 |wPtrClea|r(sizeof|
|00001380| 20 28 2a 70 62 29 29 3b | 0d 09 6f 73 45 72 72 20 | (*pb));|..osErr |
|00001390| 3d 20 4d 65 6d 45 72 72 | 6f 72 28 29 3b 0d 09 69 |= MemErr|or();..i|
|000013a0| 66 20 28 30 20 21 3d 20 | 70 62 20 26 26 20 6e 6f |f (0 != |pb && no|
|000013b0| 45 72 72 20 3d 3d 20 6f | 73 45 72 72 29 20 7b 0d |Err == o|sErr) {.|
|000013c0| 09 09 28 2a 70 62 29 2e | 69 6f 52 65 66 4e 75 6d |..(*pb).|ioRefNum|
|000013d0| 20 09 09 09 3d 20 69 6f | 52 65 66 4e 75 6d 3b 0d | ...= io|RefNum;.|
|000013e0| 09 09 28 2a 70 62 29 2e | 63 73 43 6f 64 65 09 09 |..(*pb).|csCode..|
|000013f0| 09 3d 20 63 73 41 53 63 | 61 6e 3b 0d 09 09 28 2a |.= csASc|an;...(*|
|00001400| 70 62 29 2e 63 73 50 61 | 72 61 6d 2e 74 79 70 65 |pb).csPa|ram.type|
|00001410| 09 09 3d 20 4d 53 46 41 | 44 44 52 3b 0d 09 09 28 |..= MSFA|DDR;...(|
|00001420| 2a 70 62 29 2e 63 73 50 | 61 72 61 6d 2e 61 64 64 |*pb).csP|aram.add|
|00001430| 72 5b 31 5d 09 3d 20 44 | 65 63 69 6d 61 6c 32 42 |r[1].= D|ecimal2B|
|00001440| 43 44 28 73 74 61 72 74 | 4d 69 6e 29 3b 0d 09 09 |CD(start|Min);...|
|00001450| 28 2a 70 62 29 2e 63 73 | 50 61 72 61 6d 2e 61 64 |(*pb).cs|Param.ad|
|00001460| 64 72 5b 32 5d 09 3d 20 | 44 65 63 69 6d 61 6c 32 |dr[2].= |Decimal2|
|00001470| 42 43 44 28 73 74 61 72 | 74 53 65 63 29 3b 0d 09 |BCD(star|tSec);..|
|00001480| 09 28 2a 70 62 29 2e 63 | 73 50 61 72 61 6d 2e 61 |.(*pb).c|sParam.a|
|00001490| 64 64 72 5b 33 5d 09 3d | 20 44 65 63 69 6d 61 6c |ddr[3].=| Decimal|
|000014a0| 32 42 43 44 28 73 74 61 | 72 74 46 72 61 6d 65 29 |2BCD(sta|rtFrame)|
|000014b0| 3b 0d 09 09 28 2a 70 62 | 29 2e 63 73 50 61 72 61 |;...(*pb|).csPara|
|000014c0| 6d 2e 64 69 72 65 63 74 | 69 6f 6e 46 6c 61 67 09 |m.direct|ionFlag.|
|000014d0| 3d 20 64 69 72 65 63 74 | 69 6f 6e 3b 0d 09 09 28 |= direct|ion;...(|
|000014e0| 2a 70 62 29 2e 63 73 50 | 61 72 61 6d 2e 66 69 6c |*pb).csP|aram.fil|
|000014f0| 6c 09 09 3d 20 30 3b 0d | 09 09 6f 73 45 72 72 20 |l..= 0;.|..osErr |
|00001500| 3d 20 50 42 43 6f 6e 74 | 72 6f 6c 28 28 50 61 72 |= PBCont|rol((Par|
|00001510| 6d 42 6c 6b 50 74 72 29 | 70 62 2c 20 66 61 6c 73 |mBlkPtr)|pb, fals|
|00001520| 65 29 3b 0d 09 09 44 69 | 73 70 6f 73 50 74 72 28 |e);...Di|sposPtr(|
|00001530| 28 50 74 72 29 20 70 62 | 29 3b 0d 09 7d 0d 09 72 |(Ptr) pb|);..}..r|
|00001540| 65 74 75 72 6e 20 6f 73 | 45 72 72 3b 0d 7d 0d 0d |eturn os|Err;.}..|
|00001550| 0d 70 61 73 63 61 6c 09 | 4f 53 45 72 72 20 54 72 |.pascal.|OSErr Tr|
|00001560| 61 63 6b 43 6f 75 6e 74 | 28 73 68 6f 72 74 20 69 |ackCount|(short i|
|00001570| 6f 52 65 66 4e 75 6d 2c | 20 42 79 74 65 20 2a 73 |oRefNum,| Byte *s|
|00001580| 74 6f 70 54 72 61 63 6b | 29 20 7b 0d 0d 09 61 75 |topTrack|) {...au|
|00001590| 74 6f 09 4f 53 45 72 72 | 09 09 09 6f 73 45 72 72 |to.OSErr|...osErr|
|000015a0| 3b 0d 09 73 74 61 74 69 | 63 09 52 65 61 64 54 4f |;..stati|c.ReadTO|
|000015b0| 43 52 65 63 09 09 2a 70 | 62 3b 0d 0d 09 70 62 20 |CRec..*p|b;...pb |
|000015c0| 3d 20 28 52 65 61 64 54 | 4f 43 52 65 63 20 2a 29 |= (ReadT|OCRec *)|
|000015d0| 20 4e 65 77 50 74 72 43 | 6c 65 61 72 28 73 69 7a | NewPtrC|lear(siz|
|000015e0| 65 6f 66 20 28 2a 70 62 | 29 29 3b 0d 09 6f 73 45 |eof (*pb|));..osE|
|000015f0| 72 72 20 3d 20 4d 65 6d | 45 72 72 6f 72 28 29 3b |rr = Mem|Error();|
|00001600| 0d 09 69 66 20 28 30 20 | 21 3d 20 70 62 20 26 26 |..if (0 |!= pb &&|
|00001610| 20 6e 6f 45 72 72 20 3d | 3d 20 6f 73 45 72 72 29 | noErr =|= osErr)|
|00001620| 20 7b 0d 09 09 28 2a 70 | 62 29 2e 69 6f 52 65 66 | {...(*p|b).ioRef|
|00001630| 4e 75 6d 09 09 09 3d 20 | 69 6f 52 65 66 4e 75 6d |Num...= |ioRefNum|
|00001640| 3b 0d 09 09 28 2a 70 62 | 29 2e 63 73 43 6f 64 65 |;...(*pb|).csCode|
|00001650| 09 09 09 3d 20 63 73 52 | 65 61 64 54 4f 43 3b 0d |...= csR|eadTOC;.|
|00001660| 09 09 28 2a 70 62 29 2e | 63 73 50 61 72 61 6d 2e |..(*pb).|csParam.|
|00001670| 74 79 70 65 09 09 3d 20 | 31 3b 0d 09 09 6f 73 45 |type..= |1;...osE|
|00001680| 72 72 20 3d 20 50 42 43 | 6f 6e 74 72 6f 6c 28 28 |rr = PBC|ontrol((|
|00001690| 50 61 72 6d 42 6c 6b 50 | 74 72 29 70 62 2c 20 66 |ParmBlkP|tr)pb, f|
|000016a0| 61 6c 73 65 29 3b 0d 09 | 09 69 66 20 28 6e 6f 45 |alse);..|.if (noE|
|000016b0| 72 72 20 3d 3d 20 6f 73 | 45 72 72 29 20 7b 0d 09 |rr == os|Err) {..|
|000016c0| 09 09 2a 73 74 6f 70 54 | 72 61 63 6b 09 09 09 3d |..*stopT|rack...=|
|000016d0| 20 42 43 44 32 44 65 63 | 69 6d 61 6c 28 28 2a 70 | BCD2Dec|imal((*p|
|000016e0| 62 29 2e 63 73 50 61 72 | 61 6d 2e 61 64 64 72 5b |b).csPar|am.addr[|
|000016f0| 31 5d 29 3b 0d 09 09 7d | 0d 09 09 44 69 73 70 6f |1]);...}|...Dispo|
|00001700| 73 50 74 72 28 28 50 74 | 72 29 20 70 62 29 3b 0d |sPtr((Pt|r) pb);.|
|00001710| 09 7d 0d 09 72 65 74 75 | 72 6e 20 6f 73 45 72 72 |.}..retu|rn osErr|
|00001720| 3b 0d 7d 0d 0d 70 61 73 | 63 61 6c 09 4f 53 45 72 |;.}..pas|cal.OSEr|
|00001730| 72 20 54 72 61 63 6b 49 | 6e 66 6f 28 73 68 6f 72 |r TrackI|nfo(shor|
|00001740| 74 20 69 6f 52 65 66 4e | 75 6d 2c 20 42 79 74 65 |t ioRefN|um, Byte|
|00001750| 20 74 72 61 63 6b 2c 20 | 42 79 74 65 20 2a 63 6e | track, |Byte *cn|
|00001760| 74 6c 46 69 65 6c 64 2c | 20 42 79 74 65 20 2a 6d |tlField,| Byte *m|
|00001770| 69 6e 75 74 65 73 2c 20 | 42 79 74 65 20 2a 73 65 |inutes, |Byte *se|
|00001780| 63 6f 6e 64 73 2c 20 42 | 79 74 65 20 2a 66 72 61 |conds, B|yte *fra|
|00001790| 6d 65 73 29 20 7b 0d 0d | 09 61 75 74 6f 09 4f 53 |mes) {..|.auto.OS|
|000017a0| 45 72 72 09 09 09 6f 73 | 45 72 72 3b 0d 09 73 74 |Err...os|Err;..st|
|000017b0| 61 74 69 63 09 52 65 61 | 64 54 4f 43 52 65 63 09 |atic.Rea|dTOCRec.|
|000017c0| 09 2a 70 62 3b 0d 09 0d | 09 70 62 20 3d 20 28 52 |.*pb;...|.pb = (R|
|000017d0| 65 61 64 54 4f 43 52 65 | 63 20 2a 29 20 4e 65 77 |eadTOCRe|c *) New|
|000017e0| 50 74 72 43 6c 65 61 72 | 28 73 69 7a 65 6f 66 20 |PtrClear|(sizeof |
|000017f0| 28 2a 70 62 29 29 3b 0d | 09 6f 73 45 72 72 20 3d |(*pb));.|.osErr =|
|00001800| 20 4d 65 6d 45 72 72 6f | 72 28 29 3b 0d 09 69 66 | MemErro|r();..if|
|00001810| 20 28 30 20 21 3d 20 70 | 62 20 26 26 20 6e 6f 45 | (0 != p|b && noE|
|00001820| 72 72 20 3d 3d 20 6f 73 | 45 72 72 29 20 7b 0d 09 |rr == os|Err) {..|
|00001830| 09 28 2a 70 62 29 2e 69 | 6f 52 65 66 4e 75 6d 09 |.(*pb).i|oRefNum.|
|00001840| 09 09 09 09 3d 20 69 6f | 52 65 66 4e 75 6d 3b 0d |....= io|RefNum;.|
|00001850| 09 09 28 2a 70 62 29 2e | 63 73 43 6f 64 65 09 09 |..(*pb).|csCode..|
|00001860| 09 09 09 3d 20 63 73 52 | 65 61 64 54 4f 43 3b 0d |...= csR|eadTOC;.|
|00001870| 09 09 28 2a 70 62 29 2e | 63 73 50 61 72 61 6d 2e |..(*pb).|csParam.|
|00001880| 74 79 70 65 09 09 09 09 | 3d 20 33 3b 0d 09 09 28 |type....|= 3;...(|
|00001890| 2a 70 62 29 2e 63 73 50 | 61 72 61 6d 2e 62 75 66 |*pb).csP|aram.buf|
|000018a0| 66 65 72 2e 64 61 74 61 | 09 09 3d 20 28 4c 6f 6e |fer.data|..= (Lon|
|000018b0| 67 29 20 4e 65 77 50 74 | 72 43 6c 65 61 72 28 73 |g) NewPt|rClear(s|
|000018c0| 69 7a 65 6f 66 20 28 53 | 74 61 72 74 41 64 64 72 |izeof (S|tartAddr|
|000018d0| 52 65 63 29 29 3b 0d 09 | 09 6f 73 45 72 72 20 3d |Rec));..|.osErr =|
|000018e0| 20 4d 65 6d 45 72 72 6f | 72 28 29 3b 0d 09 09 69 | MemErro|r();...i|
|000018f0| 66 20 28 30 20 21 3d 20 | 28 2a 70 62 29 2e 63 73 |f (0 != |(*pb).cs|
|00001900| 50 61 72 61 6d 2e 62 75 | 66 66 65 72 2e 64 61 74 |Param.bu|ffer.dat|
|00001910| 61 20 26 26 20 6e 6f 45 | 72 72 20 3d 3d 20 6f 73 |a && noE|rr == os|
|00001920| 45 72 72 29 20 7b 0d 09 | 09 09 28 2a 70 62 29 2e |Err) {..|..(*pb).|
|00001930| 63 73 50 61 72 61 6d 2e | 62 75 66 66 65 72 2e 6c |csParam.|buffer.l|
|00001940| 65 6e 67 74 68 09 09 3d | 20 73 69 7a 65 6f 66 28 |ength..=| sizeof(|
|00001950| 53 74 61 72 74 41 64 64 | 72 52 65 63 29 3b 0d 09 |StartAdd|rRec);..|
|00001960| 09 09 28 2a 70 62 29 2e | 63 73 50 61 72 61 6d 2e |..(*pb).|csParam.|
|00001970| 62 75 66 66 65 72 2e 74 | 72 61 63 6b 09 09 3d 20 |buffer.t|rack..= |
|00001980| 44 65 63 69 6d 61 6c 32 | 42 43 44 28 74 72 61 63 |Decimal2|BCD(trac|
|00001990| 6b 29 3b 0d 09 09 09 6f | 73 45 72 72 20 3d 20 50 |k);....o|sErr = P|
|000019a0| 42 43 6f 6e 74 72 6f 6c | 28 28 50 61 72 6d 42 6c |BControl|((ParmBl|
|000019b0| 6b 50 74 72 29 70 62 2c | 20 66 61 6c 73 65 29 3b |kPtr)pb,| false);|
|000019c0| 0d 09 09 09 69 66 20 28 | 6e 6f 45 72 72 20 3d 3d |....if (|noErr ==|
|000019d0| 20 6f 73 45 72 72 29 20 | 7b 0d 09 09 09 09 2a 63 | osErr) |{.....*c|
|000019e0| 6e 74 6c 46 69 65 6c 64 | 20 09 09 3d 20 28 2a 28 |ntlField| ..= (*(|
|000019f0| 53 74 61 72 74 41 64 64 | 72 52 65 63 20 2a 29 28 |StartAdd|rRec *)(|
|00001a00| 2a 70 62 29 2e 63 73 50 | 61 72 61 6d 2e 62 75 66 |*pb).csP|aram.buf|
|00001a10| 66 65 72 2e 64 61 74 61 | 29 2e 63 6e 74 6c 46 69 |fer.data|).cntlFi|
|00001a20| 65 6c 64 3b 0d 09 09 09 | 09 2a 6d 69 6e 75 74 65 |eld;....|.*minute|
|00001a30| 73 20 09 09 3d 20 42 43 | 44 32 44 65 63 69 6d 61 |s ..= BC|D2Decima|
|00001a40| 6c 28 28 2a 28 53 74 61 | 72 74 41 64 64 72 52 65 |l((*(Sta|rtAddrRe|
|00001a50| 63 20 2a 29 28 2a 70 62 | 29 2e 63 73 50 61 72 61 |c *)(*pb|).csPara|
|00001a60| 6d 2e 62 75 66 66 65 72 | 2e 64 61 74 61 29 2e 6d |m.buffer|.data).m|
|00001a70| 69 6e 75 74 65 73 29 3b | 0d 09 09 09 09 2a 73 65 |inutes);|.....*se|
|00001a80| 63 6f 6e 64 73 09 09 3d | 20 42 43 44 32 44 65 63 |conds..=| BCD2Dec|
|00001a90| 69 6d 61 6c 28 28 2a 28 | 53 74 61 72 74 41 64 64 |imal((*(|StartAdd|
|00001aa0| 72 52 65 63 20 2a 29 28 | 2a 70 62 29 2e 63 73 50 |rRec *)(|*pb).csP|
|00001ab0| 61 72 61 6d 2e 62 75 66 | 66 65 72 2e 64 61 74 61 |aram.buf|fer.data|
|00001ac0| 29 2e 73 65 63 6f 6e 64 | 73 29 3b 0d 09 09 09 09 |).second|s);.....|
|00001ad0| 2a 66 72 61 6d 65 73 09 | 09 09 3d 20 42 43 44 32 |*frames.|..= BCD2|
|00001ae0| 44 65 63 69 6d 61 6c 28 | 28 2a 28 53 74 61 72 74 |Decimal(|(*(Start|
|00001af0| 41 64 64 72 52 65 63 20 | 2a 29 28 2a 70 62 29 2e |AddrRec |*)(*pb).|
|00001b00| 63 73 50 61 72 61 6d 2e | 62 75 66 66 65 72 2e 64 |csParam.|buffer.d|
|00001b10| 61 74 61 29 2e 66 72 61 | 6d 65 73 29 3b 0d 09 09 |ata).fra|mes);...|
|00001b20| 09 7d 0d 09 09 09 44 69 | 73 70 6f 73 50 74 72 28 |.}....Di|sposPtr(|
|00001b30| 28 50 74 72 29 20 28 2a | 70 62 29 2e 63 73 50 61 |(Ptr) (*|pb).csPa|
|00001b40| 72 61 6d 2e 62 75 66 66 | 65 72 2e 64 61 74 61 29 |ram.buff|er.data)|
|00001b50| 3b 0d 09 09 7d 0d 09 09 | 44 69 73 70 6f 73 50 74 |;...}...|DisposPt|
|00001b60| 72 28 28 50 74 72 29 20 | 70 62 29 3b 0d 09 7d 0d |r((Ptr) |pb);..}.|
|00001b70| 09 72 65 74 75 72 6e 20 | 6f 73 45 72 72 3b 0d 7d |.return |osErr;.}|
|00001b80| 0d 0d 70 61 73 63 61 6c | 09 4f 53 45 72 72 20 41 |..pascal|.OSErr A|
|00001b90| 54 72 6b 53 65 61 72 63 | 68 28 73 68 6f 72 74 20 |TrkSearc|h(short |
|00001ba0| 69 6f 52 65 66 4e 75 6d | 2c 20 42 79 74 65 20 74 |ioRefNum|, Byte t|
|00001bb0| 72 61 63 6b 2c 20 42 79 | 74 65 20 70 6c 61 79 46 |rack, By|te playF|
|00001bc0| 6c 61 67 2c 20 42 79 74 | 65 20 70 6c 61 79 4d 6f |lag, Byt|e playMo|
|00001bd0| 64 65 29 20 7b 0d 0d 09 | 61 75 74 6f 09 4f 53 45 |de) {...|auto.OSE|
|00001be0| 72 72 09 09 09 6f 73 45 | 72 72 3b 0d 09 73 74 61 |rr...osE|rr;..sta|
|00001bf0| 74 69 63 09 41 54 72 6b | 53 65 61 72 63 68 52 65 |tic.ATrk|SearchRe|
|00001c00| 63 09 2a 70 62 3b 09 0d | 0d 09 70 62 20 3d 20 28 |c.*pb;..|..pb = (|
|00001c10| 41 54 72 6b 53 65 61 72 | 63 68 52 65 63 20 2a 29 |ATrkSear|chRec *)|
|00001c20| 20 4e 65 77 50 74 72 43 | 6c 65 61 72 28 73 69 7a | NewPtrC|lear(siz|
|00001c30| 65 6f 66 20 28 2a 70 62 | 29 29 3b 0d 09 6f 73 45 |eof (*pb|));..osE|
|00001c40| 72 72 20 3d 20 4d 65 6d | 45 72 72 6f 72 28 29 3b |rr = Mem|Error();|
|00001c50| 0d 09 69 66 20 28 30 20 | 21 3d 20 70 62 20 26 26 |..if (0 |!= pb &&|
|00001c60| 20 6e 6f 45 72 72 20 3d | 3d 20 6f 73 45 72 72 29 | noErr =|= osErr)|
|00001c70| 20 7b 0d 09 09 28 2a 70 | 62 29 2e 69 6f 52 65 66 | {...(*p|b).ioRef|
|00001c80| 4e 75 6d 20 09 09 09 3d | 20 69 6f 52 65 66 4e 75 |Num ...=| ioRefNu|
|00001c90| 6d 3b 0d 09 09 28 2a 70 | 62 29 2e 63 73 43 6f 64 |m;...(*p|b).csCod|
|00001ca0| 65 09 09 09 3d 20 63 73 | 41 54 72 6b 53 65 61 72 |e...= cs|ATrkSear|
|00001cb0| 63 68 3b 0d 09 09 28 2a | 70 62 29 2e 63 73 50 61 |ch;...(*|pb).csPa|
|00001cc0| 72 61 6d 2e 74 79 70 65 | 09 09 3d 20 54 52 41 43 |ram.type|..= TRAC|
|00001cd0| 4b 41 44 44 52 3b 0d 09 | 09 28 2a 70 62 29 2e 63 |KADDR;..|.(*pb).c|
|00001ce0| 73 50 61 72 61 6d 2e 61 | 64 64 72 5b 33 5d 09 3d |sParam.a|ddr[3].=|
|00001cf0| 20 44 65 63 69 6d 61 6c | 32 42 43 44 28 74 72 61 | Decimal|2BCD(tra|
|00001d00| 63 6b 29 3b 0d 09 09 28 | 2a 70 62 29 2e 63 73 50 |ck);...(|*pb).csP|
|00001d10| 61 72 61 6d 2e 70 6c 61 | 79 46 6c 61 67 09 3d 20 |aram.pla|yFlag.= |
|00001d20| 70 6c 61 79 46 6c 61 67 | 3b 0d 09 09 28 2a 70 62 |playFlag|;...(*pb|
|00001d30| 29 2e 63 73 50 61 72 61 | 6d 2e 70 6c 61 79 4d 6f |).csPara|m.playMo|
|00001d40| 64 65 09 3d 20 70 6c 61 | 79 4d 6f 64 65 3b 0d 09 |de.= pla|yMode;..|
|00001d50| 09 6f 73 45 72 72 20 3d | 20 50 42 43 6f 6e 74 72 |.osErr =| PBContr|
|00001d60| 6f 6c 28 28 50 61 72 6d | 42 6c 6b 50 74 72 29 70 |ol((Parm|BlkPtr)p|
|00001d70| 62 2c 20 66 61 6c 73 65 | 29 3b 0d 09 09 44 69 73 |b, false|);...Dis|
|00001d80| 70 6f 73 50 74 72 28 28 | 50 74 72 29 20 70 62 29 |posPtr((|Ptr) pb)|
|00001d90| 3b 0d 09 7d 0d 09 72 65 | 74 75 72 6e 20 6f 73 45 |;..}..re|turn osE|
|00001da0| 72 72 3b 0d 7d 0d 0d 70 | 61 73 63 61 6c 09 4f 53 |rr;.}..p|ascal.OS|
|00001db0| 45 72 72 20 41 53 74 61 | 74 75 73 28 73 68 6f 72 |Err ASta|tus(shor|
|00001dc0| 74 20 69 6f 52 65 66 4e | 75 6d 2c 20 42 79 74 65 |t ioRefN|um, Byte|
|00001dd0| 20 2a 61 75 64 69 6f 53 | 74 61 74 75 73 2c 20 42 | *audioS|tatus, B|
|00001de0| 79 74 65 20 2a 70 6c 61 | 79 4d 6f 64 65 2c 20 42 |yte *pla|yMode, B|
|00001df0| 79 74 65 20 2a 63 6e 74 | 6c 46 69 65 6c 64 2c 20 |yte *cnt|lField, |
|00001e00| 42 79 74 65 20 2a 6d 69 | 6e 75 74 65 73 2c 20 42 |Byte *mi|nutes, B|
|00001e10| 79 74 65 20 2a 73 65 63 | 6f 6e 64 73 2c 20 42 79 |yte *sec|onds, By|
|00001e20| 74 65 20 2a 66 72 61 6d | 65 73 29 20 7b 0d 0d 09 |te *fram|es) {...|
|00001e30| 61 75 74 6f 09 4f 53 45 | 72 72 09 09 09 6f 73 45 |auto.OSE|rr...osE|
|00001e40| 72 72 3b 0d 09 73 74 61 | 74 69 63 09 41 53 74 61 |rr;..sta|tic.ASta|
|00001e50| 74 75 73 52 65 63 09 09 | 2a 70 62 3b 0d 0d 09 70 |tusRec..|*pb;...p|
|00001e60| 62 20 3d 20 28 41 53 74 | 61 74 75 73 52 65 63 20 |b = (ASt|atusRec |
|00001e70| 2a 29 20 4e 65 77 50 74 | 72 43 6c 65 61 72 28 73 |*) NewPt|rClear(s|
|00001e80| 69 7a 65 6f 66 20 28 2a | 70 62 29 29 3b 0d 09 6f |izeof (*|pb));..o|
|00001e90| 73 45 72 72 20 3d 20 4d | 65 6d 45 72 72 6f 72 28 |sErr = M|emError(|
|00001ea0| 29 3b 0d 09 69 66 20 28 | 30 20 21 3d 20 70 62 20 |);..if (|0 != pb |
|00001eb0| 26 26 20 6e 6f 45 72 72 | 20 3d 3d 20 6f 73 45 72 |&& noErr| == osEr|
|00001ec0| 72 29 20 7b 0d 09 09 28 | 2a 70 62 29 2e 69 6f 52 |r) {...(|*pb).ioR|
|00001ed0| 65 66 4e 75 6d 09 09 09 | 09 3d 20 69 6f 52 65 66 |efNum...|.= ioRef|
|00001ee0| 4e 75 6d 3b 0d 09 09 28 | 2a 70 62 29 2e 63 73 43 |Num;...(|*pb).csC|
|00001ef0| 6f 64 65 09 09 09 09 3d | 20 63 73 41 53 74 61 74 |ode....=| csAStat|
|00001f00| 75 73 3b 0d 09 09 6f 73 | 45 72 72 20 3d 20 50 42 |us;...os|Err = PB|
|00001f10| 43 6f 6e 74 72 6f 6c 28 | 28 50 61 72 6d 42 6c 6b |Control(|(ParmBlk|
|00001f20| 50 74 72 29 70 62 2c 20 | 66 61 6c 73 65 29 3b 0d |Ptr)pb, |false);.|
|00001f30| 09 09 69 66 20 28 6e 6f | 45 72 72 20 3d 3d 20 6f |..if (no|Err == o|
|00001f40| 73 45 72 72 29 20 7b 0d | 09 09 09 2a 61 75 64 69 |sErr) {.|...*audi|
|00001f50| 6f 53 74 61 74 75 73 09 | 09 3d 20 28 2a 70 62 29 |oStatus.|.= (*pb)|
|00001f60| 2e 63 73 50 61 72 61 6d | 2e 61 75 64 69 6f 53 74 |.csParam|.audioSt|
|00001f70| 61 74 75 73 3b 0d 09 09 | 09 2a 70 6c 61 79 4d 6f |atus;...|.*playMo|
|00001f80| 64 65 09 09 09 3d 20 28 | 2a 70 62 29 2e 63 73 50 |de...= (|*pb).csP|
|00001f90| 61 72 61 6d 2e 70 6c 61 | 79 4d 6f 64 65 3b 0d 09 |aram.pla|yMode;..|
|00001fa0| 09 09 2a 63 6e 74 6c 46 | 69 65 6c 64 09 09 09 3d |..*cntlF|ield...=|
|00001fb0| 20 28 2a 70 62 29 2e 63 | 73 50 61 72 61 6d 2e 63 | (*pb).c|sParam.c|
|00001fc0| 6e 74 6c 46 69 65 6c 64 | 3b 0d 09 09 09 2a 6d 69 |ntlField|;....*mi|
|00001fd0| 6e 75 74 65 73 09 09 09 | 3d 20 42 43 44 32 44 65 |nutes...|= BCD2De|
|00001fe0| 63 69 6d 61 6c 28 28 2a | 70 62 29 2e 63 73 50 61 |cimal((*|pb).csPa|
|00001ff0| 72 61 6d 2e 6d 69 6e 75 | 74 65 73 29 3b 0d 09 09 |ram.minu|tes);...|
|00002000| 09 2a 73 65 63 6f 6e 64 | 73 09 09 09 3d 20 42 43 |.*second|s...= BC|
|00002010| 44 32 44 65 63 69 6d 61 | 6c 28 28 2a 70 62 29 2e |D2Decima|l((*pb).|
|00002020| 63 73 50 61 72 61 6d 2e | 73 65 63 6f 6e 64 73 29 |csParam.|seconds)|
|00002030| 3b 0d 09 09 09 2a 66 72 | 61 6d 65 73 09 09 09 09 |;....*fr|ames....|
|00002040| 3d 20 42 43 44 32 44 65 | 63 69 6d 61 6c 28 28 2a |= BCD2De|cimal((*|
|00002050| 70 62 29 2e 63 73 50 61 | 72 61 6d 2e 66 72 61 6d |pb).csPa|ram.fram|
|00002060| 65 73 29 3b 0d 09 09 7d | 0d 09 09 44 69 73 70 6f |es);...}|...Dispo|
|00002070| 73 50 74 72 28 28 50 74 | 72 29 20 70 62 29 3b 0d |sPtr((Pt|r) pb);.|
|00002080| 09 7d 0d 09 72 65 74 75 | 72 6e 20 6f 73 45 72 72 |.}..retu|rn osErr|
|00002090| 3b 0d 7d 0d 0d 70 61 73 | 63 61 6c 20 4f 53 45 72 |;.}..pas|cal OSEr|
|000020a0| 72 20 41 47 65 74 56 6f | 6c 75 6d 65 28 73 68 6f |r AGetVo|lume(sho|
|000020b0| 72 74 20 69 6f 52 65 66 | 4e 75 6d 2c 20 73 68 6f |rt ioRef|Num, sho|
|000020c0| 72 74 20 2a 76 6f 6c 75 | 6d 65 29 0d 7b 0d 0d 09 |rt *volu|me).{...|
|000020d0| 61 75 74 6f 09 4f 53 45 | 72 72 09 09 09 6f 73 45 |auto.OSE|rr...osE|
|000020e0| 72 72 3b 0d 09 73 74 61 | 74 69 63 09 41 56 6f 6c |rr;..sta|tic.AVol|
|000020f0| 75 6d 65 52 65 63 09 09 | 2a 70 62 3b 0d 0d 09 70 |umeRec..|*pb;...p|
|00002100| 62 20 3d 20 28 20 41 56 | 6f 6c 75 6d 65 52 65 63 |b = ( AV|olumeRec|
|00002110| 20 2a 29 20 4e 65 77 50 | 74 72 43 6c 65 61 72 28 | *) NewP|trClear(|
|00002120| 73 69 7a 65 6f 66 20 28 | 2a 70 62 29 29 3b 0d 09 |sizeof (|*pb));..|
|00002130| 6f 73 45 72 72 20 3d 20 | 4d 65 6d 45 72 72 6f 72 |osErr = |MemError|
|00002140| 28 29 3b 0d 09 69 66 20 | 28 30 20 21 3d 20 70 62 |();..if |(0 != pb|
|00002150| 20 26 26 20 6e 6f 45 72 | 72 20 3d 3d 20 6f 73 45 | && noEr|r == osE|
|00002160| 72 72 29 20 7b 0d 09 09 | 28 2a 70 62 29 2e 69 6f |rr) {...|(*pb).io|
|00002170| 52 65 66 4e 75 6d 09 09 | 09 09 3d 20 69 6f 52 65 |RefNum..|..= ioRe|
|00002180| 66 4e 75 6d 3b 0d 09 09 | 28 2a 70 62 29 2e 63 73 |fNum;...|(*pb).cs|
|00002190| 43 6f 64 65 09 09 09 09 | 3d 20 63 73 41 47 65 74 |Code....|= csAGet|
|000021a0| 56 6f 6c 75 6d 65 3b 0d | 09 09 6f 73 45 72 72 20 |Volume;.|..osErr |
|000021b0| 3d 20 50 42 43 6f 6e 74 | 72 6f 6c 28 28 50 61 72 |= PBCont|rol((Par|
|000021c0| 6d 42 6c 6b 50 74 72 29 | 70 62 2c 20 66 61 6c 73 |mBlkPtr)|pb, fals|
|000021d0| 65 29 3b 0d 09 09 69 66 | 20 28 6e 6f 45 72 72 20 |e);...if| (noErr |
|000021e0| 3d 3d 20 6f 73 45 72 72 | 29 20 7b 0d 09 09 09 2a |== osErr|) {....*|
|000021f0| 76 6f 6c 75 6d 65 09 09 | 3d 20 28 28 2a 70 62 29 |volume..|= ((*pb)|
|00002200| 2e 63 73 50 61 72 61 6d | 2e 6c 65 66 74 43 68 61 |.csParam|.leftCha|
|00002210| 6e 6e 65 6c 20 2b 20 28 | 2a 70 62 29 2e 63 73 50 |nnel + (|*pb).csP|
|00002220| 61 72 61 6d 2e 72 69 67 | 68 74 43 68 61 6e 6e 65 |aram.rig|htChanne|
|00002230| 6c 29 20 2f 32 3b 0d 09 | 09 7d 0d 09 09 44 69 73 |l) /2;..|.}...Dis|
|00002240| 70 6f 73 50 74 72 28 28 | 50 74 72 29 20 70 62 29 |posPtr((|Ptr) pb)|
|00002250| 3b 0d 09 7d 0d 09 72 65 | 74 75 72 6e 20 6f 73 45 |;..}..re|turn osE|
|00002260| 72 72 3b 0d 0d 7d 0d 0d | 70 61 73 63 61 6c 20 4f |rr;..}..|pascal O|
|00002270| 53 45 72 72 20 41 53 65 | 74 56 6f 6c 75 6d 65 28 |SErr ASe|tVolume(|
|00002280| 73 68 6f 72 74 20 69 6f | 52 65 66 4e 75 6d 2c 20 |short io|RefNum, |
|00002290| 73 68 6f 72 74 20 76 6f | 6c 75 6d 65 29 0d 7b 0d |short vo|lume).{.|
|000022a0| 09 61 75 74 6f 09 4f 53 | 45 72 72 09 09 09 6f 73 |.auto.OS|Err...os|
|000022b0| 45 72 72 3b 0d 09 73 74 | 61 74 69 63 09 41 56 6f |Err;..st|atic.AVo|
|000022c0| 6c 75 6d 65 52 65 63 09 | 09 2a 70 62 3b 0d 0d 09 |lumeRec.|.*pb;...|
|000022d0| 70 62 20 3d 20 28 41 56 | 6f 6c 75 6d 65 52 65 63 |pb = (AV|olumeRec|
|000022e0| 20 2a 29 20 4e 65 77 50 | 74 72 43 6c 65 61 72 28 | *) NewP|trClear(|
|000022f0| 73 69 7a 65 6f 66 20 28 | 2a 70 62 29 29 3b 0d 09 |sizeof (|*pb));..|
|00002300| 6f 73 45 72 72 20 3d 20 | 4d 65 6d 45 72 72 6f 72 |osErr = |MemError|
|00002310| 28 29 3b 0d 09 69 66 20 | 28 30 20 21 3d 20 70 62 |();..if |(0 != pb|
|00002320| 20 26 26 20 6e 6f 45 72 | 72 20 3d 3d 20 6f 73 45 | && noEr|r == osE|
|00002330| 72 72 29 20 7b 0d 09 09 | 28 2a 70 62 29 2e 69 6f |rr) {...|(*pb).io|
|00002340| 52 65 66 4e 75 6d 09 09 | 09 09 3d 20 69 6f 52 65 |RefNum..|..= ioRe|
|00002350| 66 4e 75 6d 3b 0d 09 09 | 28 2a 70 62 29 2e 63 73 |fNum;...|(*pb).cs|
|00002360| 43 6f 64 65 09 09 09 09 | 3d 20 63 73 41 53 65 74 |Code....|= csASet|
|00002370| 56 6f 6c 75 6d 65 3b 0d | 09 09 28 2a 70 62 29 2e |Volume;.|..(*pb).|
|00002380| 63 73 50 61 72 61 6d 2e | 6c 65 66 74 43 68 61 6e |csParam.|leftChan|
|00002390| 6e 65 6c 20 20 3d 20 76 | 6f 6c 75 6d 65 3b 0d 09 |nel = v|olume;..|
|000023a0| 09 28 2a 70 62 29 2e 63 | 73 50 61 72 61 6d 2e 72 |.(*pb).c|sParam.r|
|000023b0| 69 67 68 74 43 68 61 6e | 6e 65 6c 20 20 3d 20 76 |ightChan|nel = v|
|000023c0| 6f 6c 75 6d 65 3b 0d 09 | 09 6f 73 45 72 72 20 3d |olume;..|.osErr =|
|000023d0| 20 50 42 43 6f 6e 74 72 | 6f 6c 28 28 50 61 72 6d | PBContr|ol((Parm|
|000023e0| 42 6c 6b 50 74 72 29 70 | 62 2c 20 66 61 6c 73 65 |BlkPtr)p|b, false|
|000023f0| 29 3b 0d 09 09 44 69 73 | 70 6f 73 50 74 72 28 28 |);...Dis|posPtr((|
|00002400| 50 74 72 29 20 70 62 29 | 3b 0d 09 7d 0d 09 72 65 |Ptr) pb)|;..}..re|
|00002410| 74 75 72 6e 20 6f 73 45 | 72 72 3b 0d 7d 0d 0d 70 |turn osE|rr;.}..p|
|00002420| 61 73 63 61 6c 20 42 6f | 6f 6c 65 61 6e 09 44 69 |ascal Bo|olean.Di|
|00002430| 73 63 49 6e 44 72 69 76 | 65 28 73 68 6f 72 74 20 |scInDriv|e(short |
|00002440| 69 6f 52 65 66 4e 75 6d | 29 0d 7b 0d 09 61 75 74 |ioRefNum|).{..aut|
|00002450| 6f 09 4f 53 45 72 72 09 | 09 09 6f 73 45 72 72 3b |o.OSErr.|..osErr;|
|00002460| 0d 09 73 74 61 74 69 63 | 09 41 56 6f 6c 75 6d 65 |..static|.AVolume|
|00002470| 52 65 63 09 09 2a 70 62 | 3b 0d 0d 09 70 62 20 3d |Rec..*pb|;...pb =|
|00002480| 20 28 41 56 6f 6c 75 6d | 65 52 65 63 20 2a 29 20 | (AVolum|eRec *) |
|00002490| 4e 65 77 50 74 72 43 6c | 65 61 72 28 73 69 7a 65 |NewPtrCl|ear(size|
|000024a0| 6f 66 20 28 2a 70 62 29 | 29 3b 0d 09 6f 73 45 72 |of (*pb)|);..osEr|
|000024b0| 72 20 3d 20 4d 65 6d 45 | 72 72 6f 72 28 29 3b 0d |r = MemE|rror();.|
|000024c0| 09 69 66 20 28 30 20 21 | 3d 20 70 62 20 26 26 20 |.if (0 !|= pb && |
|000024d0| 6e 6f 45 72 72 20 3d 3d | 20 6f 73 45 72 72 29 20 |noErr ==| osErr) |
|000024e0| 7b 0d 09 09 28 2a 70 62 | 29 2e 69 6f 52 65 66 4e |{...(*pb|).ioRefN|
|000024f0| 75 6d 09 09 09 09 3d 20 | 69 6f 52 65 66 4e 75 6d |um....= |ioRefNum|
|00002500| 3b 0d 09 09 28 2a 70 62 | 29 2e 63 73 43 6f 64 65 |;...(*pb|).csCode|
|00002510| 09 09 09 09 3d 20 63 73 | 56 65 72 69 66 79 54 68 |....= cs|VerifyTh|
|00002520| 65 44 69 73 63 3b 0d 09 | 09 6f 73 45 72 72 20 3d |eDisc;..|.osErr =|
|00002530| 20 50 42 43 6f 6e 74 72 | 6f 6c 28 28 50 61 72 6d | PBContr|ol((Parm|
|00002540| 42 6c 6b 50 74 72 29 70 | 62 2c 20 66 61 6c 73 65 |BlkPtr)p|b, false|
|00002550| 29 3b 0d 09 09 44 69 73 | 70 6f 73 50 74 72 28 28 |);...Dis|posPtr((|
|00002560| 50 74 72 29 20 70 62 29 | 3b 0d 09 7d 0d 09 72 65 |Ptr) pb)|;..}..re|
|00002570| 74 75 72 6e 20 28 6f 73 | 45 72 72 20 3d 3d 20 6e |turn (os|Err == n|
|00002580| 6f 45 72 72 29 3b 0d 7d | 0d 00 00 00 00 00 00 00 |oErr);.}|........|
|00002590| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000025a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000025b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000025c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000025d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000025e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000025f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002600| 00 00 01 00 00 00 01 d0 | 00 00 00 d0 00 00 00 52 |........|.......R|
|00002610| 73 45 72 72 20 3d 20 61 | 48 6f 73 74 49 6e 66 6f |sErr = a|HostInfo|
|00002620| 2e 72 74 6e 43 6f 64 65 | 3b 0d 09 09 72 65 74 75 |.rtnCode|;...retu|
|00002630| 04 63 64 2e 63 07 02 00 | 00 00 00 00 00 00 00 00 |.cd.c...|........|
|00002640| 00 00 00 00 00 00 00 00 | 00 00 00 00 56 18 00 00 |........|....V...|
|00002650| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002660| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002670| 00 00 ad f0 e3 1f 00 00 | 25 09 00 00 02 22 73 74 |........|%...."st|
|00002680| 49 6e 66 6f 2e 61 64 64 | 72 5b 30 5d 3b 0d 09 09 |Info.add|r[0];...|
|00002690| 09 09 0d 09 72 65 74 75 | 72 6e 20 6f 73 45 72 72 |....retu|rn osErr|
|000026a0| 3b 0d 7d 0d 00 08 2f 28 | 00 de 20 6e 00 08 3f 28 |;.}.../(|.. n..?(|
|000026b0| 00 d4 3f 3c 00 01 42 a7 | 42 a7 2f 2e 00 08 4e ba |..?<..B.|B./...N.|
|000026c0| 0b de 4f ef 00 14 20 6e | 00 08 2f 28 00 de 2f 2e |..O... n|../(../.|
|000026d0| 00 08 4e ba 01 da 50 8f | 3d 40 ff f2 0c 6e ff ff |..N...P.|=@...n..|
|000026e0| ff f2 67 00 01 70 20 6e | 00 08 42 68 00 e6 48 6e |..g..p n|..Bh..Hn|
|000026f0| ff f6 3f 2e ff fa 20 6e | 00 08 3f 28 00 d4 20 6e |..?... n|..?(.. n|
|00002700| 00 00 00 78 00 03 00 00 | 00 48 00 48 00 00 00 00 |...x....|.H.H....|
|00002710| 02 40 03 08 ff ee ff f8 | 02 52 03 10 03 44 05 28 |.@......|.R...D.(|
|00002720| 03 fc 00 02 00 00 00 48 | 00 48 00 00 00 00 02 40 |.......H|.H.....@|
|00002730| 03 08 00 01 00 00 00 64 | 00 00 00 01 00 01 01 01 |.......d|........|
|00002740| 00 00 00 01 27 0f 00 01 | 00 01 00 00 00 00 00 00 |....'...|........|
|00002750| 00 00 00 00 00 00 00 0a | 00 19 01 90 00 00 00 00 |........|........|
|00002760| 00 60 00 00 00 00 00 00 | 00 00 00 01 00 00 00 00 |.`......|........|
|00002770| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 04 |........|........|
|00002780| 00 01 00 01 00 00 00 48 | 00 09 4d 6f 6e 61 63 6f |.......H|..Monaco|
|00002790| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000027a0| 00 00 00 00 00 00 00 00 | 00 00 00 06 00 04 00 2c |........|.......,|
|000027b0| 00 03 02 fd 03 fd 00 58 | 00 04 02 ed 02 63 ac 1c |.......X|.....c..|
|000027c0| c1 2a 00 00 00 a6 00 00 | 00 a6 00 00 00 00 00 00 |.*......|........|
|000027d0| 00 00 01 00 00 00 01 d0 | 00 00 00 d0 00 00 00 52 |........|.......R|
|000027e0| 01 7b 04 5c 18 9c 00 00 | 00 1c 00 52 00 01 4d 50 |.{.\....|...R..MP|
|000027f0| 53 52 00 01 00 12 4d 57 | 42 42 00 00 00 2a 03 ee |SR....MW|BB...*..|
|00002800| ff ff 00 00 00 00 00 00 | 00 00 03 ed ff ff 00 00 |........|........|
|00002810| 00 84 01 7b 04 98 03 f0 | ff ff 00 00 00 7c 00 00 |...{....|.....|..|
|00002820| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002830| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002840| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002850| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002860| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002870| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
+--------+-------------------------+-------------------------+--------+--------+